package algorithm;

/**
 * 给定一个整数数组 nums ，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
 * 2021-08-21 07:57:29
 */
public class MaxSubArray {

    public static void main(String[] args) {
        int[] nums = {-2,1,-3,4,-1,2,1,-5,4};

        System.out.println(maxSubArray(nums));
    }

    public static int maxSubArray(int[] nums) {
        int result = nums[0];
        int sum = 0;

        for (int num : nums) {

            if (sum > 0){
                sum += num;
            }else {
                sum = num;
            }

            result = Math.max(result,sum);
        }

        return result;
    }
}
